/*
硬件电路版本
800F_18Plus16P_90x90mm_V01

*/
#include "globalDef.h"
#include "gd32e10x.h"
#include "watchDog_hw.h"
#include "peripheral.h"
#include "tim_hw.h"
#include "OneSecProcess.h"
#include "debug_prt.h"
#include "sleep.h"
#include "IAP.h"
#include "CANProcess.h"
#include "CanTest.h"
#include "L610.h"
#include "led.h"
#include "rf_bit_proc.h"
#include "hitag.h"
#include "EngineStart.h"
#include "voldet.h"
#if _EnCntTimes_def
u32 CntTimes = 0;
#endif

void CanDataProcess( void )
{
	//处理双CAN，当检测到CAN驱动复位时不进行CAN数据的处理
	if( rebootCANHardwareGet() == 0 )
	{
		CANProcess();
	}
}

int main(void)
{
	initPeri();					//系统初始化及自检
	while(1)
	{
		#if _EnCntTimes_def
		CntTimes ++;
		#endif
		vol_detect();			//系统BAT电源电压采集
		Deal_Time();			//时间进程
		OneSecProcess();		//系统TICK，单位1S
		#if WatchdogEnable_def
		feedWatchDog();			//系统看门狗处理
		#endif
		#if _EnSleep_def
		sleep_process();		//系统休眠处理
		#endif
		#if _EnIAP
		IAPProcess();			//IAP升级处理
		#endif
		#if _EnCAN
		CanDataProcess();		//CAN数据处理
		#endif
		#if _EN_L610
		L610Process();			//L610通信处理
		#endif
		LEDProcess();			//系统LED控制
		#if CONFIG_USER_RF433 > 0u
		detect_key_result();	//RF钥匙检测处理
		#endif
		#if def_EngineStart > 0u
		deal_engine_start();	//车辆一键启动功能处理
		#endif
	}
}

